package com.rick.new310;

public enum ErrorCodeEnum {

    UN_KNOW_ERROR(-1, "system error"),
    API_DEPRECATED_ERROR(404, "api had deprecated"),
    /**
     * 通用异常---- start
     **/
    COMMON_PARAM_TYPE_ERROR(90001, "参数:{}, 类型错误"),
    COMMON_PARAM_MISS_ERROR(90002, "参数:{}, 缺失"),
    COMMON_PARAM_ERROR(90003, "参数错误, {}"),
    COMMON_HTTP_METHOD_ERROR(90004, "该url不支持{}方法"),
    COMMON_ERROR(90005, "{}"),
    COMMON_ACTIVITY_ERROR(90007, "当前活动时间该车型已配置皮肤包，请重新配置"),

    COMMON_SAVE_ERROR(90021, "save fail"),
    COMMON_DEL_ERROR(90022, "delete fail"),
    COMMON_UPDATE_ERROR(90023, "update fail"),
    /**通用异常 ---- end**/

    /**
     * 设备管理异常 ---- start
     **/
    DEVICE_NOT_FIND_PROJECT(91001, "设备:{}, 对应的项目没找到appKey"),
    DEVICE_EXPORT_FILE_GEN_ERROR(91002, "导出文件生成失败, 失败流水号:{}"),
    DEVICE_RESET_NOT_FOUND_DEVICE(91003, "设备重置发现错误, dId: {}, 无法找到"),
    /**
     * 设备管理异常 ---- end
     **/

    /**
     * 账户管理异常 ---- start
     **/
    ACCOUNT_UN_LOCK_ERROR(92001, "账户:{},解锁失败"),
    EXTERNAL_ADD_ERROR(92001, "external add fail"),
    ROLE_NAME_EXIST(94062, "角色名称已存在"),
    NAME_EXIST(94063, "已存在"),
    /**账户管理异常 ---- end**/


    /**
     * 会员管理异常 ---- start
     **/
    MEMBERSHIP_EXPORT_FILE_GEN_ERROR(93001, "导出文件生成失败, 失败流水号:{}"),
    MEMBERSHIP_ROLE_DELETE_ERROR(93002, "已经被会员服务包引用的角色名称不支持删除，可以先去会员服务包中取消引用"),
    MEMBERSHIP_ROLE_NAME_EXIST(93003, "已存在该会员角色名称"),
    MEMBERSHIP_LEVEL_DELETE_ERROR(93004, "已经被会员服务包引用的等级名称不支持删除，可以先去会员服务包中取消引用"),
    MEMBERSHIP_LEVEL_UPDATE_ERROR(93005, "已经被会员服务包引用的等级名称不支持修改，可以先去会员服务包中取消引用"),
    MEMBERSHIP_LEVEL_NAME_EXIST(93006, "已存在该会员等级名称"),
    MEMBERSHIP_PACKAGE_NAME_EXIST(93007, "已存在该会员服务包名称"),
    MEMBERSHIP_PACKAGE_OPENID_EXIST(93008, "该项目已存在产线激活包或正式激活包"),

    /**
     * 会员管理异常 ---- end
     **/

    /**
     * 商城管理异常 ---- start
     **/

    MALL_LEAF_PRODUCT_EXIST(94001, "新增的子产品已在该组合产品中存在"),
    CHANNEL_NAME_EXIST(94002, "已存在该渠道名称"),
    CHANNEL_VERSION_EXIST(94030, "已存在该渠道版本号"),
    CHANNEL_SORT_EXIST(94003, "已存在该商品排序"),
    PRODUCT_DELETE_ERROR(94004, "该产品已被虚拟商品使用，不支持删除"),
    PRODUCT_NAME_EXIST(94005, "该产品名称已存在"),
    CHANNEL_TYPE_NAME_EXIST(94006, "该渠道商品类型已存在"),
    CHANNEL_GOODS_NAME_EXIST(94007, "该渠道商品已存在"),
    GOODS_DELETE_ERROR(94008, "该商品已被渠道商品使用，先取消引用再删除"),
    CHANNEL_GOODS_EXIST(94009, "发布的商品已在该渠道存在"),
    GOODS_TYPE_DELETE_ERROR(94010, "该商品分类已被渠道商品分类使用，先取消引用再删除"),
    GOODS_TYPE__NAME_EXIST(94011, "该商品分类名称已存在"),
    GOODS_NAME_EXIST(94012, "该商品名称已存在"),
    GOODS_TYPE__CODE_EXIST(94013, "该商品分类编码已存在"),
    CHANNEL_GOODS_TYPE_EXIST(94014, "发布的商品已在该渠道存在"),
    ACTIVITY_NAME_EXIST(94015, "该优惠活动名称已存在"),
    ACTIVITY_RULE_NAME_EXIST(94016, "该优惠规则名称已存在"),
    ACTIVITY_RULE_DELETE_ERROR(94017, "该优惠规则名已被优惠活动使用，先在优惠活动中取消引用再进行删除"),
    ACTIVITY_CHANNEL_EXIST(94018, "该优惠活动已在要发布的渠道或渠道商品中存在"),
    COUPON_NAME_EXIST(94019, "该优惠券名称已存在"),
    MALL_LEAF_GOODS_EXIST(94020, "新增的子商品已在该组合商品中"),
    COUPON_SCENE_EXIST(94021, "该优惠券发放场景已存在"),
    COUPON_SCENE_NOT_EXIST(94022, "该优惠券发放场景不存在"),
    COUPON_NOT_EXIST(94023, "该优惠券不存在"),
    GOODS_NOT_PRESENT(94024, "该商品不属于音效音库复刻形象其中的一种"),
    GID_IS_NULL(94025, "goodsId为空"),
    GOODS_IS_NULL(94026, "该商品不存在"),
    GOODS_IS_USE(94027, "该商品已被发布到渠道，先先下架后再删除"),
    CHANNEL_GOODS_HASE_EXIST(94028, "该渠道存在已经发布的商品，先在商品管理中下架之后再进行删除"),
    GOODS_TYPE_BING_GOODS(94029, "该商品分类已被商品使用，先取消引用再删除"),
    GOODS_PRODUCT_OFF_SELL(94030, "产品为下架状态，请先上架产品"),

    /**
     * 商城管理异常 ---- end
     **/
    /**
     * 音效管理异常 ---- start
     **/
    SOUND_PRODUCT_NO_EXIST(95001, "产品不存在"),
    SOUND_PUTAWAY_ERROR(95002, "产品上下架失败"),
    SOUND_EN_NAME_EXIST(95003, "产品英文名称已存在"),
    SOUND_EN_NAME_ERROR(95004, "产品英文名称不符合规则"),
    SOUND_VERSION_EXIST(95005, "发音人版本已存在"),
    SOUND_PRODUCT_ID_EXIST(95006, "产品id已存在"),
    SOUND_RESOURCE_URL_INVALIDATE(95007, "资源文件路径无效"),
    USER_PRODUCT_INVALIDATE(95008, "当前产品暂不可上架，请联系管理员"),
    /**
     * 音效管理异常 ---- end
     **/
    /**
     * 消息推送异常 ---- start
     **/
    PUSH_MESSAGE_STATUS_NOT_SEND(96001, "消息不是未发送状态"),
    PUSH_MESSAGE_ADD_FAIL(96002, "新增消息失败"),
    PUSH_MESSAGE_UPLOAD_FAIL(96003, "上传文件失败"),
    PUSH_MESSAGE_UPDATE_TIME_BAN(96004, "有效时间小于当前时间"),
    PUSH_MESSAGE_TIME_FORMAT_ERROR(96005, "时间格式错误"),
    /**
     * 消息推送异常 ---- end
     **/
    /**
     * 虚拟形象产品 ---- start
     **/
    VIRTUAL_IMAGE_TYPE_ADD_FAIL(97001, "保存类型失败"),
    VIRTUAL_IMAGE_TYPE_SUB_EXIST(97002, "请先删除下级"),
    VIRTUAL_IMAGE_TYPE_NAME_REPEAT(97003, "类型名称重复"),
    VIRTUAL_IMAGE_NAME_REPEAT(97004, "形象产品名称重复"),
    /**
     * 虚拟形象产品 ---- end
     **/
    /**
     * 车企管理 ---- start
     **/
    CAR_COMPANY_ADD_FAIL(98001, "保存车企失败"),
    CAR_COMPANY_NAME_REPEAT(98002, "车企名称重复"),
    CAR_PROJECT_ADD_FAIL(98003, "保存项目失败"),
    CAR_PROJECT_NAME_REPEAT(98004, "车企项目重复"),
    CAR_PROJECT_HAS_BANGING(98005, "该项目已绑定其他车企"),
    /**
     * 车企管理 ---- end
     **/
    /**
     * 类型管理 ---- start
     **/
    PRODUCT_TYPE_REPEAT(98101, "产品类型已存在"),
    PRODUCT_TYPE_DELETE_GOODS_FAIL(98102, "该产品类型已与商品类型绑定，请先删除商品类型。"),
    PRODUCT_TYPE_DELETE_FAIL(98103, "产品类型删除失败。"),
    PRODUCT_TYPE_NOT_FOUND(98104, "产品类型不存在。"),
    /**
     * 类型管理 ---- end
     **/

    /**
     * 固件异常 ---- start
     **/
    FIRMWARETYPE_NOT_FIND(98001, "固件类型不存在"),
    NOT_ALLOW(98002, "不允许删除"),
    FIRMWARE_NOT_FIND(98003, "固件不存在"),
    NOT_ALLOW_UPDATE(98004, "固件型号不不可修改"),
    NOT_ALLOW_REPEAT(98005, "固件型号不可重复"),
    TYPE_NOT_ALLOW_REPEAT(98006, "固件类型型号不可重复"),

    /**固件异常 ---- end**/

    /**
     * 文件上传异常 ---- start
     **/
    DEFAULT_FILE_NAME_LENGTH(90050, "默认的文件名最大长度 100"),
    DEFAULT_FILE_SIZE_EXCEED(90051, "上传的文件大小超出限制的文件大小！<br/>允许的文件最大大小是：{0}MB！"),
    DEFAULT_FILE_UPLOAD_FAIL(90052, "file upload fail"),
    /**
     * 文件上传异常 ---- end
     **/

    /***
     * 设备重置异常 ---- end
     */
    DEVICE_RESET_UPLOAD_FAIL(90060, "文件上传出错，错误信息{0}"),
    DEVICE_RESET_FAIL(90061, "设备重置出错，错误信息{0}"),
    DEVICE_RESET_UPLOAD_MERGE_FAIL(90062, "文件合并出错，已经完成了合并"),
    /**
     * 设备重置异常 ----  end
     */
    NONE(0, "success"),

    /**
     * 项目复刻次数维护
     */
    RETRO_SOUND_MISS(90063, "缺少参数，错误信息{0}"),

    /**
     * 项目复刻次数维护
     */
    FF_GOODS_PAY_NOTMORE_ONE(90065, "复刻商品的支付方式数据只能为一条"),
    FF_GOODS_RELEASE_MORE_ONE(90066, "每个渠道只可以发布一个复刻商品"),
    RETRO_SOUND_NUM(90064, "复刻次数设置失败，错误信息{0}"),
    RETRO_SOUND_CHANNEL_EXIT(90065, "该渠道已配置！");


    private int code;
    private String pattern;

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getPattern() {
        return pattern;
    }

    public void setPattern(String pattern) {
        this.pattern = pattern;
    }

    ErrorCodeEnum(int code, String pattern) {
        this.code = code;
        this.pattern = pattern;
    }

    @Override
    public String toString() {
        return "{" +
                "\"code\":" + code +
                ", \"msg\":'" + pattern + '\'' +
                '}';
    }
}
